1
非安全程式碼的必要性
AI034Lesson 19
00:00

內在的隱藏語言

Rust有一個秘密:實際上它 是兩種語言合而為一。雖然安全的Rust是你的守護者,但Rust編譯器本質上是 保守的。它遵循嚴格的哲學:寧可拒絕一個正確且安全的程式,也不願不小心允許一個危險的程式。這造成硬體能做的事與編譯器能證明的事之間出現了差距。

嚴謹的現實

想像編譯器就像一位嚴格的守門人。在這個程式碼範例中,match條件判斷式 if y 適用於整個模式群組 (4 | 5 | 6)。這種嚴格的 優先順序 反映了借用檢查器(Borrow Checker)的運作方式;它對你的記憶體套用全局且不容妥協的規則。然而,底層的電腦硬體卻是 本質上不安全;它無法理解「擁有權」或「生命週期」的概念。要打造像 split_at_mut這樣的高效能工具,我們必須進入 非安全Rust 『逃生口』,以執行技術上正確但邏輯上過於複雜、超出編譯器靜態分析能力的操作。

所有技術上安全的程式碼已驗證安全(借用檢查器)非安全的必要性

紅色與綠色圓圈之間的差距,正是非安全Rust存在的地方——當靜態分析失敗時,讓我們得以發揮硬體的全部潛能。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>